package com.imooc.transaction;

import org.apache.commons.lang3.StringUtils;

import java.util.UUID;

 /**
 * 事务工具类
 * <pre>
 *  我们这里使用：txGlobalId来 表示全局有没有开启事务
 * </pre>
 *
 * @author tom
 */
public class TransactionUtil {

    /**
     * 开启事务
     */
    public static void startTransaction() {
        String txGlobalId = TransactionGlobalIdContext.getTxGlobalId();
        if (StringUtils.isEmpty(txGlobalId)) {
            txGlobalId = UUID.randomUUID().toString();
            TransactionGlobalIdContext.setTxGlobalId(txGlobalId);
        }
    }

    /**
     * 事务内所有连接 提交
     *
     * @throws Exception
     */
    public static void commit() throws Exception {
        TransactionMultiConnectionContext.commit();
    }

    public static void rollback() throws Exception {
        TransactionMultiConnectionContext.rollback();
    }
}
